package com.zeratul.common.mybatis.core.sqlexec.prop;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Configuration
@ConfigurationProperties(prefix = "zt-plugin.sql")
@Data
public class ZtExecSqlConfiguration {

    /**
     * 是否开启sql记录插件
     */
    boolean enable = true;

    /**
     * 日志类型
     *      all - 输出全部SQL日志
     *      api - 根据api输出日志
     */
    private LogType logType = LogType.ALL;

    /**
     * 需要输出日志的Api集合
     */
    private List<String> apis;

    /**
     * 请求头的参数名称
     */
    private String headerName = "sql-log";

    /**
     * sql格式：
     *   prepared - 预编译格式输出
     *   execute - 原始格式输出
     */
    private LogFormat logFormat = LogFormat.EXECUTE;

    /**
     * sql最大长度
     */
    private Integer sqlMaxLength = 1000;

    /**
     * 参数最大数量
     */
    private Integer paramMaxLength = 20;
}
